package com.xbongbong.pro.statistic.service;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.pro.statistic.pojo.dto.DepartmentPkAddDTO;
import com.xbongbong.pro.statistic.pojo.dto.DepartmentPkEditDTO;
import com.xbongbong.pro.statistic.pojo.dto.DepartmentPkListDTO;
import com.xbongbong.pro.statistic.pojo.dto.DepartmentPkSetSaveDTO;
import com.xbongbong.pro.statistic.pojo.dto.DepartmentPkSubSaveDTO;
import com.xbongbong.pro.statistic.pojo.vo.DepartmentPkAddVO;
import com.xbongbong.pro.statistic.pojo.vo.DepartmentPkEditVO;
import com.xbongbong.pro.statistic.pojo.vo.DepartmentPkListVO;
import com.xbongbong.pro.statistic.pojo.vo.DepartmentPkSetSaveVO;
import com.xbongbong.pro.statistic.pojo.vo.DepartmentPkSubSaveVO;

/**
 * 部门pk方案相关
 *
 * @author 徐俊杰
 * @date 2019/3/21 10:56
 * @since v1.0
 */
public interface DepartmentPkService {
    /**
     * 获取部门绩效pk方案列表
     *
     * @param departmentPkListDTO 部门pk方案列表入参
     * @return com.xbongbong.pro.statistic.pojo.vo.DepartmentPkListVO
     * @throws XbbException
     * @author 徐俊杰
     * @date 2019/3/21 11:02
     * @since v1.0
     */
    DepartmentPkListVO departmentPkList(DepartmentPkListDTO departmentPkListDTO) throws XbbException;

    /**
     * 部门pk方案新建
     *
     * @param departmentPkAddDTO 部门pk方案新建入参
     * @return DepartmentPkAddVO
     * @throws XbbException 插入数据时抛出异常
     * @author 徐俊杰
     * @date 2019/3/22 20:10
     * @since v1.0
     */
    DepartmentPkAddVO departmentPkAdd(DepartmentPkAddDTO departmentPkAddDTO) throws XbbException;

    /**
     * 部门pk方案编辑
     *
     * @param departmentPkEditDTO 部门pk方案编辑入参
     * @return DepartmentPkEditVO
     * @throws XbbException 更新数据时抛出异常
     * @author 徐俊杰
     * @date 2019/3/22 20:14
     * @since v1.0
     */
    DepartmentPkEditVO departmentPkEdit(DepartmentPkEditDTO departmentPkEditDTO) throws XbbException;

    /**
     * 部门pk方案-勾选是否包含下属部门
     *
     * @param departmentPkSubSaveDTO 部门pk方案-勾选是否包含下属部门入参
     * @return DepartmentPkSubSaveVO
     * @throws XbbException 更新数据时抛出异常
     * @author 徐俊杰
     * @date 2019/3/24 10:15
     * @since v1.0
     */
    DepartmentPkSubSaveVO departmentPkSubSave(DepartmentPkSubSaveDTO departmentPkSubSaveDTO) throws XbbException;

    /**
     * 部门pk方案设置：删除、排序
     *
     * @param departmentPkSetSaveDTO 部门pk方案设置：删除、排序入参
     * @throws XbbException 更新数据时抛出异常
     * @return DepartmentPkSetSaveVO
     * @author 徐俊杰
     * @date 2019/3/24 11:12
     * @since v1.0
     */
    DepartmentPkSetSaveVO departmentPkSetSave(DepartmentPkSetSaveDTO departmentPkSetSaveDTO) throws XbbException;
}
